/**
 * jims
 */
package com.jims.master.modules.reg.dao;

import com.jims.master.common.persistence.CrudDao;
import com.jims.master.common.persistence.annotation.MyBatisDao;
import com.jims.master.modules.reg.entity.ClinicForRegist;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * DAO接口
 * @author 刘方舟
 * @version 2017-02-27
 */
@MyBatisDao
public interface ClinicForRegistDao extends CrudDao<ClinicForRegist> {
    /**
     * 查询当天的号表
     * @return
     * @author 赵宁
     */
   public List<ClinicForRegist> findRegistToday(@Param("date")String date,@Param("clinicName")String clinicName,@Param("deptId")String deptId,@Param("orgId")String orgId);

    /**
     * 挂号成功，根据号表ID修改号表有关的数量
     * @param id
     * @author 赵宁
     */
   public void updateClinicRegist(@Param("id")String id);

    /**
     * 预约挂号查询号表
     * @param date
     * @return
     * @author 赵宁
     */
    public List<ClinicForRegist> findRegistTomorrow(@Param("date")String date,@Param("clinicName")String clinicName,
                                                    @Param("deptId")String deptId,@Param("clinicIndexId")String clinicIndexId,
                                                    @Param("timeDesc")String timeDesc,@Param("orgId")String orgId);

    /**
     * 预约成功，更新号表有关数量
     * @param id
     * @author 赵宁
     */
    public void updateRegistByAppoints(@Param("id")String id);

    /**
     * 退号时更新号表有关数量（挂号数量）
     * @param id
     * @author 赵宁
     */
    public void updateResistByBack(@Param("id")String id);

    /**
     * 退号时更新预约号数数量（预约数量）
     * @param id
     * @author 赵宁
     */
    public void updateAppointSum(@Param("id")String id);


    /**
     * 根据号别Id查询当前号
     * @param clinicDate
     * @param clinicIndexId
     * @param timeDesc
     * @return
     */
    public Integer currentNoMax(@Param("clinicDate") String clinicDate, @Param("clinicIndexId") String clinicIndexId, @Param("timeDesc") String timeDesc);

    /**
     *
     * @param clinicDate
     * @param clinicIndexId
     * @param timeDesc
     * @return
     */
    public List<ClinicForRegist> getClinicForRegist(@Param("clinicDate") String clinicDate, @Param("clinicIndexId") String clinicIndexId,@Param("timeDesc")  String timeDesc);

    /**
     * 删除号表数据根据Id
     * @param id
     * @return
     */
    public int delReal(@Param("id") String id);

    /**
     *
     * @desc 根据号别Id查询号表
     * @since 1.0
     * @param clinicIndexId
     * @return
     * @Author chenxy
     */
    public List<ClinicForRegist> findbyClinicIndexId(@Param("clinicIndexId") String clinicIndexId);
}